package br.com.damazzy.util {
	
	import br.com.damazzy.vo.VendaVO;
	
	import flash.events.Event;
	
	import mx.controls.Alert;
	import mx.controls.TextInput;
	import mx.events.ListEvent;
	
	public class QuantidadeProdutoRenderer extends TextInput {
		
		[Bindable]
		private var vo: VendaVO;
		private var pai: VendaSelecao;
		
		public function QuantidadeProdutoRenderer() {
			this.addEventListener(ListEvent.CHANGE, quantidadeAlterada);
			this.percentWidth = 70;
			this.maxChars = 5;
			this.restrict = "0-9";
		}
		
		override public function set data(value: Object): void {
            
            super.data = value;

			vo = value as VendaVO;
			pai = this.parentDocument as VendaSelecao;
			pai.calcularValorTotalCompra();

            //atualiza a displayList com o item renderer
            super.invalidateDisplayList();
        }

		private function quantidadeAlterada(event: Event): void {
			
			if (vo != null) {
				
				if (parseInt(this.text) > parseInt(vo.quantidadeEstoque)) {
					Alert.show("Não há a quantidade informada disponível em estoque. Há disponível em estoque apenas " 
						+ vo.quantidadeEstoque + " peça(s).", "Aviso!");
					
					this.text = "0";
					vo.quantidadeProduto = this.text;
					
				} else {
					vo.quantidadeProduto = this.text;
					pai.calcularValorTotalCompra();
				}
			}
		}
	}
}